package com.ntd.study.base.network;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

/**
 * 网络编程相关
 * TCP：TCP 是传输控制协议的缩写，它保障了两个应用程序之间的可靠通信。通常用于互联网协议，被称 TCP / IP。
 * UDP：UDP 是用户数据报协议的缩写，一个无连接的协议。提供了应用程序之间要发送的数据的数据包。
 * URL（Uniform Resource Locator）中文名为统一资源定位符，有时也被俗称为网页地址。表示为互联网上的资源，如网页或者FTP地址。
 */
public class DemoNetwork {

    /**
     * 协议为(protocol)：http
     * 主机为(host:port)：www.runoob.com
     * 端口号为(port): 80 ，以上URL实例并未指定端口，因为 HTTP 协议默认的端口号为 80。https默认端口443
     * 文件路径为(path)：/index.html
     * 请求参数(query)：language=cn
     * 定位位置(fragment)：j2se，定位到网页中 id 属性为 j2se 的 HTML 元素位置 。
     */
    URL url = new URL("http://www.runoob.com/index.html?language=cn#j2se");

    public static void main(String[] args) throws IOException {
        URL url = new URL("https://www.runoob.com/java/java-networking.html");
        URLConnection urlConnection = url.openConnection();
        HttpURLConnection connection = null;
        if (urlConnection instanceof HttpURLConnection) {
            connection = (HttpURLConnection) urlConnection;
        } else {
            System.out.println("请输入 URL 地址");
            return;
        }
        BufferedReader in = new BufferedReader(
                new InputStreamReader(connection.getInputStream()));
        String urlString = "";
        String current;
        while ((current = in.readLine()) != null) {
            urlString += current;
        }
        System.out.println(urlString);
    }


    public DemoNetwork() throws MalformedURLException {
    }
}
